/*
 * Metaverse Core
 * Copyright (C) 2010 Vyacheslav Vorobyov, All rights reserved.
 * See LICENSE for full license information.
 */
package org.metaverse.warehouse.com;

import java.util.Map;

import org.metaverse.warehouse.Senary;

/**
 * Constraint over a set of senaries.
 * 
 * @author vjache
 *
 */
public interface Constraint {

	/**
	 * @return the subject
	 */
	ValueConstraint getSubject();

	/**
	 * @return the predicate
	 */
	ValueConstraint getPredicate();

	/**
	 * @return the object
	 */
	ValueConstraint getObject();

	/**
	 * @return the context
	 */
	ValueConstraint getContext();
	
	/**
	 * @return the user
	 */
	ValueConstraint getUser();

	/**
	 * @return the lastAssertTime
	 */
	ValueConstraint getLastAssertTime();
	
	Map<Senary.Slot, ValueConstraint> getAll();

}